package contract_request

import (
	"private-go-sdk/http"
	"private-go-sdk/model/common"
	"encoding/json"
)

type ContractPrintdetailRequest struct {
	// <ext>inner-type:Json<ContractInfo>;core:true</ext> 【电子签约文件】电子签约文件 【作用】 查询需获取打印记录的电子签约文件 【传参】 电子签约文件id和第三方业务系统文件id必传其一，均传入以电子签约文件id为准。 2、传入多项时，按顺序仅取第1项参数进行查询
	ContractInfo string `json:"contractInfo,omitempty"`
	// <ext>core:true;format:date</ext> 【结束日期】结束日期 【作用】 查询到指定日期的文件打印记录 【传参】 1、日期格式：yyyy-MM-dd。例如：2023-05-12。 2、不传值默认为：当前日期。
	EndDate string `json:"endDate,omitempty"`
	ContractInfoObject *common.ContractInfo `json:"contractInfoObject,omitempty"`
	// <ext>core:true;format:date</ext> 【开始日期】开始日期 【作用】 查询从指定日期开始的文件打印记录 【传参】 1、日期格式：yyyy-MM-dd。例如：2023-05-12。 2、不传值默认为：从最早时间开始查询。
	StartDate string `json:"startDate,omitempty"`
}
func (obj ContractPrintdetailRequest) GetUrl() string {
    return "/contract/printDetail"
}

func (obj ContractPrintdetailRequest) GetHttpParameter() *http.HttpParameter {
    parameter := http.NewGetHttpParameter()
    parameter.AddParam("endDate", obj.EndDate)
    parameter.AddParam("startDate", obj.StartDate)
    if obj.ContractInfoObject != nil {
       jsonBytes, _ := json.Marshal(obj.ContractInfoObject)
       parameter.AddParam("contractInfo", string(jsonBytes))
   } else {
       parameter.AddParam("contractInfo", obj.ContractInfo)
   }
    return parameter
}
